1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.glib.gslist; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.gnode; 34 35 extern (C): 36 37 alias _GSList GSList; 38 39 struct _GSList 40 { 41 gpointer data; 42 GSList* next; 43 } 44 45 46 version(Derelict_Link_Static) 47 { 48 extern( C ) nothrow 49 { 50 GSList* g_slist_alloc(); 51 void g_slist_free(GSList* list); 52 void g_slist_free_1(GSList* list); 53 void g_slist_free_full(GSList* list, GDestroyNotify free_func); 54 GSList* g_slist_append(GSList* list, gpointer data); 55 GSList* g_slist_prepend(GSList* list, gpointer data); 56 GSList* g_slist_insert(GSList* list, gpointer data, gint position); 57 GSList* g_slist_insert_sorted(GSList* list, gpointer data, GCompareFunc func); 58 GSList* g_slist_insert_sorted_with_data(GSList* list, gpointer data, GCompareDataFunc func, gpointer user_data); 59 GSList* g_slist_insert_before(GSList* slist, GSList* sibling, gpointer data); 60 GSList* g_slist_concat(GSList* list1, GSList* list2); 61 GSList* g_slist_remove(GSList* list, gconstpointer data); 62 GSList* g_slist_remove_all(GSList* list, gconstpointer data); 63 GSList* g_slist_remove_link(GSList* list, GSList* link_); 64 GSList* g_slist_delete_link(GSList* list, GSList* link_); 65 GSList* g_slist_reverse(GSList* list); 66 GSList* g_slist_copy(GSList* list); 67 GSList* g_slist_copy_deep(GSList *list, GCopyFunc func, gpointer user_data); 68 GSList* g_slist_nth(GSList* list, guint n); 69 GSList* g_slist_find(GSList* list, gconstpointer data); 70 GSList* g_slist_find_custom(GSList* list, gconstpointer data, GCompareFunc func); 71 gint g_slist_position(GSList* list, GSList* llink); 72 gint g_slist_index(GSList* list, gconstpointer data); 73 GSList* g_slist_last(GSList* list); 74 guint g_slist_length(GSList* list); 75 void g_slist_foreach(GSList* list, GFunc func, gpointer user_data); 76 GSList* g_slist_sort(GSList* list, GCompareFunc compare_func); 77 GSList* g_slist_sort_with_data(GSList* list, GCompareDataFunc compare_func, gpointer user_data); 78 gpointer g_slist_nth_data(GSList* list, guint n); 79 } 80 } 81 else 82 { 83 extern( C ) nothrow 84 { 85 alias da_g_slist_alloc = GSList* function(); 86 alias da_g_slist_free = void function(GSList* list); 87 alias da_g_slist_free_1 = void function(GSList* list); 88 alias da_g_slist_free_full = void function(GSList* list, GDestroyNotify free_func); 89 alias da_g_slist_append = GSList* function(GSList* list, gpointer data); 90 alias da_g_slist_prepend = GSList* function(GSList* list, gpointer data); 91 alias da_g_slist_insert = GSList* function(GSList* list, gpointer data, gint position); 92 alias da_g_slist_insert_sorted = GSList* function(GSList* list, gpointer data, GCompareFunc func); 93 alias da_g_slist_insert_sorted_with_data = GSList* function(GSList* list, gpointer data, GCompareDataFunc func, gpointer user_data); 94 alias da_g_slist_insert_before = GSList* function(GSList* slist, GSList* sibling, gpointer data); 95 alias da_g_slist_concat = GSList* function(GSList* list1, GSList* list2); 96 alias da_g_slist_remove = GSList* function(GSList* list, gconstpointer data); 97 alias da_g_slist_remove_all = GSList* function(GSList* list, gconstpointer data); 98 alias da_g_slist_remove_link = GSList* function(GSList* list, GSList* link_); 99 alias da_g_slist_delete_link = GSList* function(GSList* list, GSList* link_); 100 alias da_g_slist_reverse = GSList* function(GSList* list); 101 alias da_g_slist_copy = GSList* function(GSList* list); 102 alias da_g_slist_copy_deep = GSList* function(GSList *list, GCopyFunc func, gpointer user_data); 103 alias da_g_slist_nth = GSList* function(GSList* list, guint n); 104 alias da_g_slist_find = GSList* function(GSList* list, gconstpointer data); 105 alias da_g_slist_find_custom = GSList* function(GSList* list, gconstpointer data, GCompareFunc func); 106 alias da_g_slist_position = gint function(GSList* list, GSList* llink); 107 alias da_g_slist_index = gint function(GSList* list, gconstpointer data); 108 alias da_g_slist_last = GSList* function(GSList* list); 109 alias da_g_slist_length = guint function(GSList* list); 110 alias da_g_slist_foreach = void function(GSList* list, GFunc func, gpointer user_data); 111 alias da_g_slist_sort = GSList* function(GSList* list, GCompareFunc compare_func); 112 alias da_g_slist_sort_with_data = GSList* function(GSList* list, GCompareDataFunc compare_func, gpointer user_data); 113 alias da_g_slist_nth_data = gpointer function(GSList* list, guint n); 114 } 115 116 __gshared 117 { 118 da_g_slist_alloc g_slist_alloc; 119 da_g_slist_free g_slist_free; 120 da_g_slist_free_1 g_slist_free_1; 121 da_g_slist_free_full g_slist_free_full; 122 da_g_slist_append g_slist_append; 123 da_g_slist_prepend g_slist_prepend; 124 da_g_slist_insert g_slist_insert; 125 da_g_slist_insert_sorted g_slist_insert_sorted; 126 da_g_slist_insert_sorted_with_data g_slist_insert_sorted_with_data; 127 da_g_slist_insert_before g_slist_insert_before; 128 da_g_slist_concat g_slist_concat; 129 da_g_slist_remove g_slist_remove; 130 da_g_slist_remove_all g_slist_remove_all; 131 da_g_slist_remove_link g_slist_remove_link; 132 da_g_slist_delete_link g_slist_delete_link; 133 da_g_slist_reverse g_slist_reverse; 134 da_g_slist_copy g_slist_copy; 135 da_g_slist_copy_deep g_slist_copy_deep; 136 da_g_slist_nth g_slist_nth; 137 da_g_slist_find g_slist_find; 138 da_g_slist_find_custom g_slist_find_custom; 139 da_g_slist_position g_slist_position; 140 da_g_slist_index g_slist_index; 141 da_g_slist_last g_slist_last; 142 da_g_slist_length g_slist_length; 143 da_g_slist_foreach g_slist_foreach; 144 da_g_slist_sort g_slist_sort; 145 da_g_slist_sort_with_data g_slist_sort_with_data; 146 da_g_slist_nth_data g_slist_nth_data; 147 } 148 }